import { checkNameForm } from "../../common/commonFormRuler_string";
import { dataSourceType } from "@/type";
// 英文数字下划线
const enNumLine = (_rule: dataSourceType, value: string, callback: () => {}, type = 'enNum', msg = '请输入英文、数字、下划线', useValue: number = 0) => {
  if (_rule.required) {// 必填项验证非空并排除非必须项
    if (!useValue) {
      if ((value === '' || value === null || value === undefined)) {
        return Promise.reject(`访问路径不能为空!`);
      } else {
        const reg = /^[_|A-Za-z0-9]+$/;
        return reg.test(value) ? Promise.resolve() : msg ? Promise.reject(`${msg}`) : Promise.reject(`${_rule.msg}`);
      }
    } else {
      if (!value || value == undefined) {
        return Promise.reject(`${_rule.msg1}`);
      } else {
        const reg = /^[_|A-Za-z0-9]+$/;
        return reg.test(value) ? Promise.resolve() : msg ? Promise.reject(`${msg}`) : Promise.reject(`${_rule.msg}`);
      }
    }
  } else {
    if (!useValue) {
      if ((value === '' || value === null || value === undefined)) {
        return Promise.resolve();
      } else {
        const reg = /^[_|A-Za-z0-9]+$/;
        return reg.test(value) ? Promise.resolve() : msg ? Promise.reject(`${msg}`) : Promise.reject(`${_rule.msg}`);
      }
    } else {
      if (!value || value == undefined) {
        return Promise.resolve();
      } else {
        const reg = /^[_|A-Za-z0-9]+$/;
        return reg.test(value) ? Promise.resolve() : msg ? Promise.reject(`${msg}`) : Promise.reject(`${_rule.msg}`);
      }
    }
  }
};
export default {
  component: {//展示型组件信息，每个组件的信息各不相同
    componentName: 'accessPath', // 组件名称
    settings: {// 对应的设置项， 可能不同组件设置也不尽相同。
      value: '',//输入框的内容
      placeholder: '请输入',//提示信息
      param: 'accessPath',//组件属性标识
      rule: {
        required: true,//是否必填
        validator: enNumLine,//校验函数
        trigger: ["blur"],//校验事件
        msg1: '访问路径不能为空!',//校验提示文案
        msg2: '访问路径不能重复!',//校验提示文案
        api: "fetchOssNameUnique",//需要用到校验的api
        key: 'siteDomain',
        params: {}, //校验传参
      },
      label: "访问路径:",//表单的标题
      beforeText: '',//组件前面添加的文字内容
      afterText: '',//组件后面添加的文字内容
      width: 492,//样式
      marginTop: 0,//样式
      marginLeft: 32,//样式
      maxCount: 25,//字数
      type: 'textInput',//组件类型
      associated: '',//组件关联
      associatedValue: '',//组件关联值
    },
  }
}